package com.nineclock.system;

import com.nineclock.common.entity.PageResult;
import com.nineclock.common.entity.Result;
import com.nineclock.model.dto.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

@Api(value = "企业管理", tags = "系统服务", description = "企业信息管理")
public interface SysCompanyControllerApi {

    @ApiOperation(value = "根据系统用户id查询企业列表")
    public Result<List<SysCompanyDTO>> queryCompanyListByUserId(Long userId);

    @ApiOperation(value = "查询当前企业的基本信息")
    public Result<SysCompanyDTO> queryCompanyInfo();

    @ApiOperation(value = "上传企业的Logo")
    public Result<String> uploadCompanyLogo(MultipartFile file);

    @ApiOperation(value = "更新当前企业的基本信息")
    public Result updateCompanyInfo(SysCompanyDTO sysCompanyDTO);

    @ApiOperation(value = "获取企业当前主管理员")
    public Result<SysCompanyUserDTO> getCurrentAdmin();

    @ApiOperation(value = "更换企业主管理员")
    public Result updateCompanyAdmin (@RequestBody SysChangeMainManagerDTO sysChangeMainManagerDTO);

    @ApiOperation(value = "分页查询企业信息")
    public PageResult pageRole(Integer page, Integer pageSize);

    @ApiOperation(value = "根据企业的关键字名称查询企业列表")
    public Result<List<SysCompanyDTO>> queryCompanyByName(String keyword);

    @ApiOperation(value = "申请加入企业")
    public Result applyJoinCompany(SysApplyJoinCompanyUserDTO sysApplyJoinCompanyUserDTO);
}

